package com.titaniume.java;

import org.junit.Test;

/**
 * @program: JavaSenior
 * @description:
 *
 *  通姑婆反射创建对应的运行时类的对象
 *
 * @author: renfei.huang
 * @create: 2021-10-30 09:56
 */
public class NewInstanceTest {


    @Test
    public void  test1() throws IllegalAccessException, InstantiationException {

        Class<Person> clazz = Person.class;


        /*
        *
        * newInstance(): 调用此方法，创建对应的运行时类的对象。内部调用了运行时类的空参构造器
        *
        * 要想次此方法正确的创建运行时类的对象，
        * 要求：
        * 1.运行时类必须提供空参构造器
        * 2.空参构造器的访问权限得够，通常设置为public.
        *
        * 在javaBean中要求提供一个public的空参构造器。
        * 原因：
        *  1.便于通过反射，创建运行时类的对象
        *  2.便于子类运行时类时，默认调用super()时，保证父类有构造器
        *
        * */
        Person object = clazz.newInstance();
        System.out.println(object);
    }


}
